package net.maku.project.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import net.maku.system.entity.SysUserEntity;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 项目信息
 *
 * @author lvpb lv941226@gmail.com
 * @since 1.0.0 2024-07-08
 */
@Data
@Schema(description = "项目信息")
public class InfoVO implements TransPojo, Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "id")
    @ExcelIgnore
    private Long id;

    @Schema(description = "产业分类")
    @ExcelProperty(value = "产业分类")
    private String industryCategory;

    @Schema(description = "项目名称")
    @ExcelProperty(value = "项目名称")
    private String projectName;

    @Schema(description = "项目编码")
    @ExcelProperty(value = "项目编码")
    private String projectCode;

    @Schema(description = "项目建设内容")
    @ExcelProperty(value = "项目建设内容")
    private String constructionContent;

    @Schema(description = "本周进度")
    @ExcelProperty(value = "本周进度")
    private String weeklyProgress;


    @Schema(description = "项目计划总投资")
    @ExcelProperty(value = "项目计划总投资")
    private BigDecimal plannedInvestment;

    @Schema(description = "项目投资方名称")
    @ExcelProperty(value = "项目投资方名称")
    private String investorName;

    @Schema(description = "项目联系人名称")
    @ExcelProperty(value = "项目联系人名称")
    private String contactName;

    @Schema(description = "项目联系人电话")
    @ExcelProperty(value = "项目联系人电话")
    private String contactPhone;

    @Schema(description = "项目当前阶段")
    @ExcelProperty(value = "项目当前阶段")
    private String currentStatus;

    @Schema(description = "包联领导")
    @ExcelProperty(value = "包联领导")
    private String linkedLeader;

    @Schema(description = "包联领导电话")
    @ExcelProperty(value = "包联领导电话")
    private String linkedLeaderPhone;

    @Schema(description = "包联单位项目负责人")
    @ExcelProperty(value = "包联单位项目负责人")
    private String projectLeader;

    @Schema(description = "包联单位项目负责人电话")
    @ExcelProperty(value = "包联单位项目负责人电话")
    private String leaderPhone;

    @Schema(description = "包联单位")
    @ExcelProperty(value = "包联单位")
    private String linkedDepartment;

    @Schema(description = "开始时间")
    @ExcelProperty(value = "开始时间")
    private LocalDateTime startTime;

    @Schema(description = "结束时间")
    @ExcelProperty(value = "结束时间")
    private LocalDateTime endTime;

    @Schema(description = "当前状态停留时间")
    @ExcelProperty(value = "当前状态停留时间")
    private String statusDuration;

    @Schema(description = "备注")
    @ExcelProperty(value = "备注")
    private String remark;

    @Schema(description = "创建人编码")
    @ExcelIgnore
    @Trans(type = TransType.SIMPLE, target = SysUserEntity.class, uniqueField = "id", fields = "realName", ref = "creatorName")
    private Long creator;

    @Schema(description = "创建人")
    @ExcelProperty(value = "创建人")
    private String creatorName;





}